package com.finalcial.dao;


import org.apache.ibatis.annotations.Param;

/**
 * 对应审批意见、工作状态
 * 1.申请--新增工作状态(未办)
 * 2.未办--同意--修改工作状态(已办)--新增审批状态(同意)
 * 		     驳回--修改工作状态(已办)--新增审批状态(未同意)
 * 3.补单--新增工作状态(未阅)
 * 4.未阅--同意--修改工作状态(已阅)--修改审批状态(同意)
 * 		     驳回--修改工作状态(已阅)--当前报销id仍为不同意
 * 
 * @author Administrator
 *
 */
public interface ApprovalDao {
	
	/**
	 * 个人工作信息新增工作状态(未办)(未阅)
	 * @param reimbursementId 报销id
	 * @param workStateName 工作状态名称
	 * @param userId 用户id 接收人的
	 * @return
	 */
	public Integer insertWorkStateByWork(@Param("reimbursementId")String reimbursementId,@Param("workStateName") String workStateName,@Param("userId") Integer userId);
	/**
	 * 个人工作信息修改工作状态(已办)(已阅)
	 * @param reimbursementId 报销id
	 * @param workStateName 工作状态名称 查询的条件
	 * @param userIdBySession 用户id
	 * @param  workStateNameUpdate 需要修改的
	 * @return
	 */
	public Integer updateWorkStateByWork(@Param("reimbursementId")String reimbursementId,@Param("workStateName") String workStateName, @Param("userIdBySession")Integer userIdBySession,@Param("workStateNameUpdate")String workStateNameUpdate);
	/**
	 * 个人工作信息新增审批状态(同意)(不同意)
	 * @param reimbursementId 报销id
	 * @param approvalOpinion 审批意见
	 * @param userId 用户id 接收人
	 * @param approvalStateName 审批状态名称
	 * @return
	 */
	public Integer insertExaminationMsg(@Param("reimbursementId")String reimbursementId,@Param("approvalOpinion")String approvalOpinion,@Param("userId")Integer userId,@Param("approvalStateName")String approvalStateName);
	
	/**
	 * 个人工作信息修改审批意见(同意)
	 * @param reimbursementId 报销id
	 * @param userIdBySession 用户id
	 * @param approvalStateNameUpdate 审批状态名称更新的
	 * @param approvalOpinion 审批意见
	 * @param approvalTime 审批时间
	 * @param approvalStateName 审批状态（查找条件）
	 * @return
	 */
	public Integer updateExaminationMsg(@Param("reimbursementId")String reimbursementId, @Param("userIdBySession")Integer userIdBySession,@Param("approvalStateNameUpdate") String approvalStateNameUpdate,@Param("approvalOpinion")String approvalOpinion,@Param("approvalStateName")String approvalStateName);
	/**
	 * 个人工作信息通过报销id、用户id、审批状态找审批id
	 * @param reimbursementId 报销id
	 * @param userId 用户id
	 * @param approvalStateName 审批状态名称
	 * @return
	 */
	public Integer getExaminationMsg(@Param("reimbursementId")String reimbursementId, @Param("userId")Integer userId,@Param("approvalStateName") String approvalStateName);

	
}
